小编典典

HTTP 与 HTTPS 性能

all

http 和 https 在性能上是否有任何重大差异?我似乎记得读过 HTTPS 可以是 HTTP
的五分之一。这对当前一代的网络服务器/浏览器有效吗?如果是这样,是否有任何白皮书支持它?


阅读 273

收藏
2022-03-25

共1个答案

小编典典

对此有一个非常简单的答案: 分析您的 Web 服务器的性能,以查看针对您的特定情况的性能损失。 有几种工具可以比较 HTTP 与 HTTPS
服务器的性能(想到 JMeter 和 Visual Studio),它们非常易于使用。

如果没有关于您的网站性质、硬件、软件和网络配置的 一些 信息,没有人可以给您一个有意义的答案。

正如其他人所说,由于加密会产生一定程度的开销,但它高度依赖于:

  • 硬件
  • 服务器软件
  • 动态与静态内容的比例
  • 客户端到服务器的距离
  • 典型的会话长度
  • 等等(我个人最喜欢的)
  • 客户端的缓存行为

以我的经验,大量处理动态内容的服务器往往受 HTTPS 的影响较小,因为与内容生成时间相比,加密所花费的时间(SSL 开销)微不足道。

大量服务于可以轻松缓存在内存中的一组相当小的静态页面的服务器会遭受更高的开销(在一种情况下,吞吐量在“内部网”上减半)。

编辑:其他几个人提出的一点是 SSL 握手是 HTTPS 的主要成本。这是正确的,这就是为什么“典型的会话长度”和“客户端的缓存行为”很重要。

许多非常短的会话意味着握手时间将压倒任何其他性能因素。较长的会话意味着握手成本将在会话开始时产生,但后续请求的开销相对较低。

客户端缓存可以在多个步骤中完成,从大型代理服务器到单个浏览器缓存。通常 HTTPS
内容不会被缓存在共享缓存中(尽管一些代理服务器可以利用中间人类型的行为来实现这一点)。许多浏览器缓存当前会话的 HTTPS
内容,并且经常跨会话缓存。不缓存或更少缓存的影响意味着客户端将更频繁地检索相同的内容。这导致更多的请求和带宽来服务相同数量的用户。

2022-03-25